﻿using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LittleBee.Cells
{
	//
	// Summary:
	//     Provides data for the System.ComponentModel.INotifyPropertyChanged.PropertyChanged
	//     event.
	public class PointerPropertyChangedEventArgs : EventArgs
	{
		//
		// Summary:
		//     Initializes a new instance of the System.ComponentModel.PropertyChangedEventArgs
		//     class.
		//
		// Parameters:
		//   propertyName:
		//     The name of the property that changed.
		public PointerPropertyChangedEventArgs(JProperty property)
		{
			Property = property;
		}

		public virtual JProperty Property { get; }
	}

	//
	// Summary:
	//     Represents the method that will handle the System.ComponentModel.INotifyPropertyChanged.PropertyChanged
	//     event raised when a property is changed on a component.
	//
	// Parameters:
	//   sender:
	//     The source of the event.
	//
	//   e:
	//     A System.ComponentModel.PropertyChangedEventArgs that contains the event data.
	public delegate void PointerPropertyChangedEventHandler(object sender, PointerPropertyChangedEventArgs e);

	public interface INotifyPointerPropertyChanged
	{
		//
		// Summary:
		//     Occurs when a property value changes.
		event PointerPropertyChangedEventHandler PointerPropertyChanged;
	}
}
